package com.yuhuihui.common.utils;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;

/**
 * inputStream工具类
 *
 * @author yuhh
 * @date 2023-05-25 14:18:50
 */
public final class InputStreamUtil {

    /** logger */
    private static final Logger logger = LoggerFactory.getLogger(InputStreamUtil.class);

    /**
     * 获取文件输入流--系统内部
     *
     * @param filePath 文件路径
     * @return {@link InputStream } 文件输入流
     * @author yuhh
     * @date 2023-05-25 14:18:55
     */
    public static InputStream getInputStreamFromSystem(String filePath){
        // 优先从项目路径获取连接信息
        String path = PropertiesUtil.class.getResource("/") + filePath;
        return getInputStream(path);
    }

    /**
     * 获取文件输入流--系统外部
     *
     * @param filePath 文件路径
     * @return {@link InputStream } 文件输入流
     * @author yuhh
     * @date 2023-05-25 14:19:01
     */
    public static InputStream getInputStream(String filePath){
        File file = new File(filePath);
        if (file.exists()) {
            try {
                return new FileInputStream(file);
            } catch (FileNotFoundException e) {
                logger.error(filePath + "文件没找到", e);
            }
        }
        // 未传入路径时，读取classpath路径
        return PropertiesUtil.class.getClassLoader().getResourceAsStream(filePath);
    }


    private InputStreamUtil(){

    }
}
